package com.ganzalang.gmall.socket.server;

import lombok.extern.slf4j.Slf4j;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author Ganzalang
 * @description 即时通信系统的服务端
 * @Date 2021/6/20 13:30
 */
@Slf4j
public class IMSServer {

    public static void main(String[] args) {
        String socketInTemp = null;
        BufferedReader socketIn = null;
        Socket socket = null;
        try {
            // 服务端创建socket
            ServerSocket serverSocket = new ServerSocket(8099);
            // 循环监听本机上输入的数据（比如管理人员输入命令行），此处规定输入exit为推出服务端
            while (true) {
                // 阻塞，等待客户端的连接请求。当有连接时就打开阻塞并返回一个socket
                socket = serverSocket.accept();
                // socket输入流（客户端传来的数据）
                socketIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                // 读取socket接收到的数据
                socketInTemp = socketIn.readLine();
                log.info("client: {}", socketInTemp);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
